/*
 * 说明：将本文添加进工程后，仅需关注 crc_modbus 函数即可，可以直接调用。
 * 		crc_modbus函数作用：输入数组首地址和数组长度，得到校验结果。
*/
#ifndef modbus_crc_h
#define modbus_crc_h


//modebus数据帧结构
typedef struct {
  unsigned char addr; //消息地址
  unsigned char func ; //功能码
  unsigned char *param; //数据域地址
  unsigned char param_len; //数据长度
}modbus_data_t;


void init_crc16_tab( void );
unsigned short int crc_modbus( const unsigned char *input_str, unsigned int num_bytes );
int convert_to_rtu_data(unsigned char addr_code, unsigned char func_code,
                        unsigned char* in_buff, unsigned char in_size,
                        unsigned char* out_buff, unsigned char* out_size);
void send_buff(unsigned char *buff, unsigned char len);
void modbus_rtu_send( modbus_data_t *data );

#endif /* modbus_crc_h */